package io.dy.utils;

import java.util.function.Predicate;

/**
 * @author dmj
 * @date 2024年03月25日 下午3:17
 */
public class TrueOrFalseRun {

    public static Handle trueOrFalse(boolean flag){
        return (r1,r2)->{
            if(flag){
                r1.run();
            }else{
                r2.run();
            }
        };
    }

    public static<T> Handle trueOrFalse(Predicate<T> predicate, T t){
        return (r1,r2)->{
            if(predicate.test(t)){
                r1.run();
            }else{
                r2.run();
            }
        };
    }

    @FunctionalInterface
    interface Handle{
        void doAction(Runnable trueRun,Runnable falseRun);
    }

    public static void main(String[] args) {
        TrueOrFalseRun.trueOrFalse(true).doAction(()-> System.out.println(true), ()-> System.out.println(false));
    }
}
